package YuanFuDao2;

/**
 *一个无序有正有负数组，求乘积最大的三个数的乘积
 */
public class Main34 {
    public static void main(String[] args) {
        int[] nums = {-10,-5,-1,2,3,4,5,6,7};
        System.out.println(help(nums));
    }

    public static int help(int[] nums){
        int max1 = Integer.MIN_VALUE;   // 第一大的值
        int max2 = Integer.MIN_VALUE;   // 第二大的值
        int max3  = Integer.MIN_VALUE;  // 第三大的值
        int min1 = Integer.MAX_VALUE;   // 第一小的值
        int min2 = Integer.MAX_VALUE;   // 第二小的值

        for (int e : nums){

            if(e >= max1){
                max3 = max2;
                max2 = max1;
                max1 = e;
            }else if(e >= max2){
                max3 = max2;
                max2 = e;
            }else if(e >= max3){
                max3 = e;
            }

            if(e <= min1){
                min2 = min1;
                min1 = e;
            }else if(e <= min2){
                min2 = e;
            }
        }

        return Math.max(max1*max2*max3,max1*min1*min2);
    }

}
